let apps = Gio.app_info_get_all();
for (let i = 0; i < apps.length; i++) {
let appInfo = apps[i];
+
+ if (!appInfo.should_show())
+ continue;
+
let appId = appInfo.get_id();
this._allItems[appId] = appInfo;
// [] is returned if we could not get the categories or the list of categories was empty
return true;
}
- let exec = itemInfo.get_executable().toLowerCase();
- if (exec.indexOf(search) >= 0)
- return true;
-
+ if (itemInfo.get_executable() == null) {
+ log("Missing an executable for " + itemInfo.get_name());
+ } else {
+ let exec = itemInfo.get_executable().toLowerCase();
+ if (exec.indexOf(search) >= 0)
+ return true;
+ }
+
// we expect this._categories.hasOwnProperty(itemInfo.get_id()) to always be true here
let categories = this._categories[itemInfo.get_id()];
for (let i = 0; i < categories.length; i++) {
const Clutter = imports.gi.Clutter;
const Shell = imports.gi.Shell;
+const Gio = imports.gi.Gio;
const Signals = imports.signals;
const Mainloop = imports.mainloop;
const Tweener = imports.tweener.tweener;
function start() {
let global = Shell.Global.get();
-
+
+ Gio.DesktopAppInfo.set_desktop_env("GNOME");
+
global.grab_dbus_service();
global.start_task_panel();
&error);
if (error != NULL)
{
- g_warning ("Error when getting 'Categories' from a key file %s: %s", desktop_file_name, error->message);
+ // "Categories" is not a required key in the desktop files, so it's ok if we didn't find it
g_clear_error (&error);
}
}